package com.dawn.module.hospital.controller.app.patient.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @description:
 * @author: cnsu-cmh
 * @time: 2024/8/7 12:58
 */
@Schema(description = "就诊档案-创建档案 APP - Request VO")
@Data
@ToString(callSuper = true)
public class PatientCreateReqVO {

    @NotBlank(message = "用户标识userId不能为空")
    @Schema(description = "userId,微信openid")
    private String userId;

    @NotBlank(message = "应用类型不能为空")
    @Schema(description = "应用类型",example="WX")
    private String appType;

    @Schema(description = "电子健康卡code")
    private String healthCode;

    @Schema(description = "微信openid、用户的标识，对当前公众号唯一")
    private String openid;

    @Schema(description = "区域id")
    private Long areaId;

    @Schema(description = "省")
    private String province;

    @Schema(description = "州/市")
    private String city;

    @Schema(description = "区/县")
    private String county;

    @Schema(description = "真实姓名")
    private String name;

    @Schema(description = "患者ID")
    private String patientId;

    @Schema(description = "性别")
    private String patientSex;

    @Schema(description = "出生日期")
    private String birthday;

    @Schema(description = "患者年龄")
    private String patientAge;

    @Schema(description = "身份证号")
    private String cardNo;

    @Schema(description = "手机号码")
    private String phone;

    @Schema(description = " 就诊卡号")
    private String patientNo;

    @Schema(description = "门诊号（红旗医院添加字段）")
    private String clinicNo;

    @Schema(description = "是否是微信用户自己的就诊卡")
    private Boolean isSelf;

    @Schema(description = "有效性 0无效，1有效")
    private Integer valid;

    @Schema(description = "备注")
    private String memo;

    @Schema(description = "性别类型编码")
    private Integer patientSexID;

    @Schema(description = "地址")
    private String address;

    @Schema(description = "密码")
    private String password;

    @Schema(description = "金额(预交金金额)")
    private BigDecimal amount;

    @Schema(description = "住院号")
    private String inPatientNO;

    @Schema(description = "创建人Id")
    private Long creatorId;

    @Schema(description = "创建人登录名")
    private String creatorLoginName;

    @Schema(description = "创建人姓名")
    private String creatorName;

    @Schema(description = "更新人id")
    private Long lastUpdaterId;

    @Schema(description = "更新人登录名")
    private String lastUpdaterLoginName;

    @Schema(description = "更新人姓名")
    private String lastUpdaterName;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern="yyyy-MM-dd Hh:mm:ss")
    private Date createTime;

    @Schema(description = "更新时间")
    @DateTimeFormat(pattern="yyyy-MM-dd Hh:mm:ss")
    private Date lastUpdateTime;

    @Schema(description = "是否有就诊卡 1:有，0:无")
    private Integer hasCardNo;

    @Schema(description = "民族")
    private String nation;

    @Schema(description = "性别类型编码")
    private String patientSexCode;

    @Schema(description = "guardName")
    private String guardName;

    @Schema(description = "guardCardNo")
    private String guardCardNo;

    @Schema(description = "patType")
    private Integer patType;

    @Schema(description = "职业编码")
    private String professionCode;

    @Schema(description = "职业名称")
    private String professionName;

    @Schema(description = "合同单位编号")
    private String pactIdCode;

    @Schema(description = "合同单位名称")
    private String pactIdName;

    @Schema(description = "电子健康卡ID")
    private String ehealthCardId;

}
